//交换整数二进制的奇数和偶数位
#define SWEAP_BNUM(n) (((n&0xaaaaaaaa)>>1)+((n&0x55555555)<<1))
int main()
{
	SWEAP_BNUM(2);
	return 0;
}


//宏定义 OFFSETOF
#define MY_OFFSET(type,name)   (size_t)&(((type*)0)->name)
struct T
{
	int i;
	char c;
	float f;
};
int main()
{
	int a=MY_OFFSET(struct T, i);
	printf("%d\n", a);
	return 0;
}